{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d87bc0bb-e49b-476f-950c-2590a2193b42",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\envs\\torch_gpu\\lib\\site-packages\\tqdm\\auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    }
   ],
   "source": [
    "#1、导入包和定义参数\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.utils.data as tud\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import trange\n",
    "EPOCHES = 10\n",
    "USE_CUDA = torch.cuda.is_available()\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "#2、定义数据，这里是自己建立\n",
    "torch.manual_seed(1)\n",
    "n_data = torch.ones(10000, 2)     #内容为一个 100 行 2 列 的 tensor\n",
    "x0 = torch.normal(3*n_data, 1)  \n",
    "y0 = torch.zeros(10000)  \n",
    "x1 = torch.normal(-2*n_data, 1)  \n",
    "y1 = torch.ones(10000)\n",
    "x2 = torch.normal(10*n_data, 1)\n",
    "y2 = torch.ones(10000)*2\n",
    "x = torch.cat((x0, x1,x2)).type(torch.FloatTensor)  \n",
    "y = torch.cat((y0, y1,y2)).type(torch.LongTensor) \n",
    "\n",
    "torch_dataset = tud.TensorDataset(x,y)\n",
    "loader = tud.DataLoader(\n",
    "    dataset=torch_dataset,\n",
    "    batch_size=16,\n",
    "    shuffle=True,\n",
    ")\n",
    "if USE_CUDA:\n",
    "    x = x.cuda()\n",
    "    y = y.cuda()\n",
    "    \n",
    "    \n",
    "#3、定义网络和模型 两层的网络\n",
    "class Net(torch.nn.Module):  \n",
    "    def __init__(self, n_feature, n_hidden, n_output):  \n",
    "        super(Net, self).__init__()  \n",
    "        self.n_hidden = nn.Linear(n_feature, n_hidden) \n",
    "        self.dropout = nn.Dropout(0.1)\n",
    "        self.out = nn.Linear(n_hidden, n_output)  \n",
    "    def forward(self, x_layer):  \n",
    "        x_layer = torch.relu(self.n_hidden(x_layer))  \n",
    "        x_layer = self.dropout(x_layer)\n",
    "        x_layer = self.out(x_layer) \n",
    "        x_layer = F.softmax(x_layer)  \n",
    "        return x_layer  \n",
    "        # 定义权值初始化\n",
    "    def initialize_weights(self):\n",
    "        for m in self.modules():\n",
    "            if isinstance(m, nn.Conv2d):\n",
    "                torch.nn.init.xavier_uniform_(m.weight.data)\n",
    "                if m.bias is not None:\n",
    "                    m.bias.data.zero_()\n",
    "            elif isinstance(m, nn.BatchNorm2d):\n",
    "                m.weight.data.fill_(1)\n",
    "                m.bias.data.zero_()\n",
    "            elif isinstance(m, nn.Linear):\n",
    "                torch.nn.init.normal_(m.weight.data, 0, 0.001)\n",
    "                m.bias.data.zero_()\n",
    "                \n",
    "model = Net(n_feature=2, n_hidden=20, n_output=3)  \n",
    "model.initialize_weights()    # 初始化权值\n",
    "\n",
    "if USE_CUDA:\n",
    "    model = model.cuda()\n",
    "\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.1)  \n",
    "scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.5)     # 设置学习率下降策略\n",
    "loss_func =  nn.CrossEntropyLoss() "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "54189628-70ee-4fa4-a113-8530e2b00e77",
   "metadata": {},
   "source": [
    "## 方式一"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "0517d4d2-7f77-4a80-8e46-0d5ad4d7be88",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_12608\\3947584025.py:46: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OrderedDict([('n_hidden.weight', tensor([[ 5.0039e-01,  4.9402e-01],\n",
      "        [-4.5996e-01, -4.3579e-01],\n",
      "        [ 1.6974e-01,  1.6428e-01],\n",
      "        [-4.5829e-01, -4.3257e-01],\n",
      "        [-6.7299e-01, -6.3901e-01],\n",
      "        [-6.3004e-01, -6.0827e-01],\n",
      "        [ 1.7448e-01,  1.8185e-01],\n",
      "        [ 1.5393e-01,  1.6387e-01],\n",
      "        [-1.0220e-01, -9.9170e-02],\n",
      "        [ 8.1804e-02,  8.1216e-02],\n",
      "        [ 1.5588e-01,  1.5518e-01],\n",
      "        [ 1.5507e-01,  1.6926e-01],\n",
      "        [-1.1185e-01, -1.0719e-01],\n",
      "        [ 4.0377e-01,  4.2862e-01],\n",
      "        [ 4.4926e-01,  4.4359e-01],\n",
      "        [ 5.1875e-01,  5.1133e-01],\n",
      "        [ 4.8048e-01,  4.8111e-01],\n",
      "        [-4.1151e-01, -3.8553e-01],\n",
      "        [-6.8879e-02, -6.3684e-02],\n",
      "        [-1.7755e-04,  8.3515e-05]], device='cuda:0')), ('n_hidden.bias', tensor([-1.6082e-01,  5.2033e-01, -1.3869e+00,  5.2244e-01,  7.7350e-01,\n",
      "         7.1887e-01, -1.3723e+00, -1.2350e+00,  1.1706e-01, -4.1280e-01,\n",
      "        -1.2485e+00, -1.2473e+00,  1.2809e-01, -2.4233e-01, -1.0251e-01,\n",
      "        -7.2077e-02, -1.7118e-01,  4.6741e-01,  7.7708e-02, -2.5173e-04],\n",
      "       device='cuda:0')), ('out.weight', tensor([[ 3.4583e-01, -5.4434e-01, -8.6707e-01, -5.4293e-01, -7.8011e-01,\n",
      "         -7.3425e-01, -8.6012e-01, -6.6276e-01, -1.2325e-01, -2.8473e-01,\n",
      "         -7.8033e-01, -8.1922e-01, -1.3561e-01,  2.6559e-01,  2.9496e-01,\n",
      "          3.3323e-01,  3.0883e-01, -4.8774e-01, -8.0326e-02, -6.7583e-04],\n",
      "        [-6.7527e-01,  6.0949e-01, -1.8205e-01,  6.0882e-01,  9.1233e-01,\n",
      "          8.5436e-01, -1.8166e-01, -3.3030e-01,  1.3619e-01, -2.1428e-02,\n",
      "         -1.6598e-01, -1.0291e-01,  1.4761e-01, -5.8701e-01, -6.0197e-01,\n",
      "         -6.9829e-01, -6.5671e-01,  5.4322e-01,  9.1148e-02, -6.2487e-04],\n",
      "        [ 3.2932e-01, -6.4173e-02,  1.0467e+00, -6.5916e-02, -1.3398e-01,\n",
      "         -1.1864e-01,  1.0409e+00,  9.9340e-01, -1.5268e-02,  3.0728e-01,\n",
      "          9.4767e-01,  9.1794e-01, -1.4524e-02,  3.2051e-01,  3.0443e-01,\n",
      "          3.6486e-01,  3.5036e-01, -5.6763e-02, -8.4824e-03, -3.3437e-04]],\n",
      "       device='cuda:0')), ('out.bias', tensor([ 2.5915,  1.6362, -4.2277], device='cuda:0'))])\n",
      "time is 0:01:20.556648 s\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正确率:0.9997666666666667\n"
     ]
    }
   ],
   "source": [
    "# 4、 完成训练和迭代并保存模型\n",
    "from datetime import  datetime\n",
    "start_time = datetime.now()\n",
    "losses = []\n",
    "for i in range(EPOCHES):\n",
    "    for step,(batch_x,batch_y) in enumerate(loader):\n",
    "        x_b = batch_x\n",
    "        y_b = batch_y\n",
    "        if USE_CUDA:\n",
    "            x_b = x_b.cuda()\n",
    "            y_b = y_b.cuda()\n",
    "        out = model(x_b)  \n",
    "        loss = loss_func(out, y_b) \n",
    "        losses.append(loss.cpu().detach().numpy())   # 新版本需求\n",
    "        optimizer.zero_grad()  \n",
    "        loss.backward()  \n",
    "        optimizer.step() \n",
    "    scheduler.step()  # 更新学习率\n",
    "    if i%8==0 and i!=0:     #每隔一段时间保存一个模型\n",
    "        torch.save(model.state_dict(),f\"./weights/model_params_{i}.pth\")\n",
    "        print(model.state_dict())\n",
    "#     print(scheduler.get_lr())\n",
    "\n",
    "end_time = datetime.now()       \n",
    "msecs = (end_time - start_time) \n",
    "print(f\"time is {msecs} s\" )\n",
    "\n",
    "#5、其它--打印损失\n",
    "x1 = range(0,len(losses))\n",
    "plt.plot(x1,losses,\".-\")\n",
    "plt.xlabel(\"epoches\")\n",
    "plt.ylabel(\"test loss\")\n",
    "plt.show()\n",
    "\n",
    "#5、其它--结果打印 及正确率\n",
    "train_result = model(x)  \n",
    "# print(train_result.shape)  \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() \n",
    "\n",
    "acc = accuracy_score(train_predict.cpu().numpy(),y.cpu().numpy())\n",
    "print(f\"正确率:{acc}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c68ef82d-557e-4b25-ba8e-1fb734ee02c8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OrderedDict([('n_hidden.weight', tensor([[ 5.0039e-01,  4.9402e-01],\n",
      "        [-4.5996e-01, -4.3579e-01],\n",
      "        [ 1.6974e-01,  1.6428e-01],\n",
      "        [-4.5829e-01, -4.3257e-01],\n",
      "        [-6.7299e-01, -6.3901e-01],\n",
      "        [-6.3004e-01, -6.0827e-01],\n",
      "        [ 1.7448e-01,  1.8185e-01],\n",
      "        [ 1.5393e-01,  1.6387e-01],\n",
      "        [-1.0220e-01, -9.9170e-02],\n",
      "        [ 8.1804e-02,  8.1216e-02],\n",
      "        [ 1.5588e-01,  1.5518e-01],\n",
      "        [ 1.5507e-01,  1.6926e-01],\n",
      "        [-1.1185e-01, -1.0719e-01],\n",
      "        [ 4.0377e-01,  4.2862e-01],\n",
      "        [ 4.4926e-01,  4.4359e-01],\n",
      "        [ 5.1875e-01,  5.1133e-01],\n",
      "        [ 4.8048e-01,  4.8111e-01],\n",
      "        [-4.1151e-01, -3.8553e-01],\n",
      "        [-6.8879e-02, -6.3684e-02],\n",
      "        [-1.7755e-04,  8.3515e-05]], device='cuda:0')), ('n_hidden.bias', tensor([-1.6082e-01,  5.2033e-01, -1.3869e+00,  5.2244e-01,  7.7350e-01,\n",
      "         7.1887e-01, -1.3723e+00, -1.2350e+00,  1.1706e-01, -4.1280e-01,\n",
      "        -1.2485e+00, -1.2473e+00,  1.2809e-01, -2.4233e-01, -1.0251e-01,\n",
      "        -7.2077e-02, -1.7118e-01,  4.6741e-01,  7.7708e-02, -2.5173e-04],\n",
      "       device='cuda:0')), ('out.weight', tensor([[ 3.4583e-01, -5.4434e-01, -8.6707e-01, -5.4293e-01, -7.8011e-01,\n",
      "         -7.3425e-01, -8.6012e-01, -6.6276e-01, -1.2325e-01, -2.8473e-01,\n",
      "         -7.8033e-01, -8.1922e-01, -1.3561e-01,  2.6559e-01,  2.9496e-01,\n",
      "          3.3323e-01,  3.0883e-01, -4.8774e-01, -8.0326e-02, -6.7583e-04],\n",
      "        [-6.7527e-01,  6.0949e-01, -1.8205e-01,  6.0882e-01,  9.1233e-01,\n",
      "          8.5436e-01, -1.8166e-01, -3.3030e-01,  1.3619e-01, -2.1428e-02,\n",
      "         -1.6598e-01, -1.0291e-01,  1.4761e-01, -5.8701e-01, -6.0197e-01,\n",
      "         -6.9829e-01, -6.5671e-01,  5.4322e-01,  9.1148e-02, -6.2487e-04],\n",
      "        [ 3.2932e-01, -6.4173e-02,  1.0467e+00, -6.5916e-02, -1.3398e-01,\n",
      "         -1.1864e-01,  1.0409e+00,  9.9340e-01, -1.5268e-02,  3.0728e-01,\n",
      "          9.4767e-01,  9.1794e-01, -1.4524e-02,  3.2051e-01,  3.0443e-01,\n",
      "          3.6486e-01,  3.5036e-01, -5.6763e-02, -8.4824e-03, -3.3437e-04]],\n",
      "       device='cuda:0')), ('out.bias', tensor([ 2.5915,  1.6362, -4.2277], device='cuda:0'))])\n"
     ]
    }
   ],
   "source": [
    "#测试加载模型预测\n",
    "model.load_state_dict(torch.load(\"./weights/model_params_8.pth\"))\n",
    "print(model.state_dict())\n",
    "# model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4816b9a0-e6ab-4028-955b-543a67fc7cfa",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9f0e0d80-f8cc-49e1-84f5-4e05a79df1b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_9596\\3035243357.py:14: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time is 0:00:17.273906 s\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正确率:0.9997666666666667\n"
     ]
    }
   ],
   "source": [
    "# 6 加载模型参数并继续训练\n",
    "#  模拟适应到新网络中，使用加载的模型进行初始化 model_new\n",
    "class Net(torch.nn.Module):  \n",
    "    def __init__(self, n_feature, n_hidden, n_output):  \n",
    "        super(Net, self).__init__()  \n",
    "        self.n_hidden = nn.Linear(n_feature, n_hidden) \n",
    "        self.dropout = nn.Dropout(0.1)\n",
    "        self.out = nn.Linear(n_hidden, n_output)  \n",
    "    def forward(self, x_layer):  \n",
    "        x_layer = torch.relu(self.n_hidden(x_layer))  \n",
    "        x_layer = self.dropout(x_layer)\n",
    "        x_layer = self.out(x_layer) \n",
    "        x_layer = F.softmax(x_layer)  \n",
    "        return x_layer  \n",
    "#------------------------------- 新增---------------------\n",
    "pretrained_dict = torch.load(\"./weights/model_params_8.pth\")\n",
    "print()\n",
    "model_new  = Net(n_feature=2, n_hidden=20, n_output=3)  #建立net\n",
    "net_state_dict = model_new.state_dict()  # 获取已创建net的state_dict\n",
    "pretrained_dict_1 = {k:v for k,v in pretrained_dict.items() if k in net_state_dict}  #将pretrained_dict里不属于net_state_dict的键剔除掉：\n",
    "net_state_dict.update(pretrained_dict_1) #用预训练模型的参数字典对新模型的参数字典net_state_dict 进行更新\n",
    "model_new.load_state_dict(net_state_dict)\n",
    "\n",
    "if USE_CUDA:\n",
    "    model_new = model_new.cuda()\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.1)  \n",
    "loss_func =  nn.CrossEntropyLoss() \n",
    "# 7.3、 完成训练和迭代并保存模型   和步骤4基本相同\n",
    "from datetime import  datetime\n",
    "start_time = datetime.now()\n",
    "EPOCHES = 2\n",
    "losses = []\n",
    "for i in range(EPOCHES):\n",
    "    for step,(batch_x,batch_y) in enumerate(loader):\n",
    "        x_b = batch_x\n",
    "        y_b = batch_y\n",
    "        if USE_CUDA:\n",
    "            x_b = x_b.cuda()\n",
    "            y_b = y_b.cuda()\n",
    "        out = model_new(x_b)  \n",
    "        loss = loss_func(out, y_b) \n",
    "       # losses.append(loss)\n",
    "        losses.append(loss.cpu().detach().numpy())   # 新版本需求\n",
    "        optimizer.zero_grad()  \n",
    "        loss.backward()  \n",
    "        optimizer.step() \n",
    "end_time = datetime.now()       \n",
    "msecs = (end_time - start_time) \n",
    "print(f\"time is {msecs} s\" )\n",
    "\n",
    "#7.4测试验证\n",
    "train_result = model_new(x)  \n",
    "# print(train_result.shape)  \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() \n",
    "\n",
    "acc = accuracy_score(train_predict.cpu().numpy(),y.cpu().numpy())\n",
    "print(f\"正确率:{acc}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "900e8cc0-178f-4db7-80f6-a71ff51660a8",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "48a290ec-57b0-47a4-8109-fc846bd954f1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "41937955-235d-4d23-a8e1-deee442e5534",
   "metadata": {},
   "source": [
    "## 方式二"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e267b0dc-6d25-4a1a-905e-3e64ac78d51e",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_16452\\3947584025.py:46: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OrderedDict([('n_hidden.weight', tensor([[ 5.0039e-01,  4.9402e-01],\n",
      "        [-4.5996e-01, -4.3579e-01],\n",
      "        [ 1.6974e-01,  1.6428e-01],\n",
      "        [-4.5829e-01, -4.3257e-01],\n",
      "        [-6.7299e-01, -6.3901e-01],\n",
      "        [-6.3004e-01, -6.0827e-01],\n",
      "        [ 1.7448e-01,  1.8185e-01],\n",
      "        [ 1.5393e-01,  1.6387e-01],\n",
      "        [-1.0220e-01, -9.9170e-02],\n",
      "        [ 8.1804e-02,  8.1216e-02],\n",
      "        [ 1.5588e-01,  1.5518e-01],\n",
      "        [ 1.5507e-01,  1.6926e-01],\n",
      "        [-1.1185e-01, -1.0719e-01],\n",
      "        [ 4.0377e-01,  4.2862e-01],\n",
      "        [ 4.4926e-01,  4.4359e-01],\n",
      "        [ 5.1875e-01,  5.1133e-01],\n",
      "        [ 4.8048e-01,  4.8111e-01],\n",
      "        [-4.1151e-01, -3.8553e-01],\n",
      "        [-6.8879e-02, -6.3684e-02],\n",
      "        [-1.7755e-04,  8.3515e-05]], device='cuda:0')), ('n_hidden.bias', tensor([-1.6082e-01,  5.2033e-01, -1.3869e+00,  5.2244e-01,  7.7350e-01,\n",
      "         7.1887e-01, -1.3723e+00, -1.2350e+00,  1.1706e-01, -4.1280e-01,\n",
      "        -1.2485e+00, -1.2473e+00,  1.2809e-01, -2.4233e-01, -1.0251e-01,\n",
      "        -7.2077e-02, -1.7118e-01,  4.6741e-01,  7.7708e-02, -2.5173e-04],\n",
      "       device='cuda:0')), ('out.weight', tensor([[ 3.4583e-01, -5.4434e-01, -8.6707e-01, -5.4293e-01, -7.8011e-01,\n",
      "         -7.3425e-01, -8.6012e-01, -6.6276e-01, -1.2325e-01, -2.8473e-01,\n",
      "         -7.8033e-01, -8.1922e-01, -1.3561e-01,  2.6559e-01,  2.9496e-01,\n",
      "          3.3323e-01,  3.0883e-01, -4.8774e-01, -8.0326e-02, -6.7583e-04],\n",
      "        [-6.7527e-01,  6.0949e-01, -1.8205e-01,  6.0882e-01,  9.1233e-01,\n",
      "          8.5436e-01, -1.8166e-01, -3.3030e-01,  1.3619e-01, -2.1428e-02,\n",
      "         -1.6598e-01, -1.0291e-01,  1.4761e-01, -5.8701e-01, -6.0197e-01,\n",
      "         -6.9829e-01, -6.5671e-01,  5.4322e-01,  9.1148e-02, -6.2487e-04],\n",
      "        [ 3.2932e-01, -6.4173e-02,  1.0467e+00, -6.5916e-02, -1.3398e-01,\n",
      "         -1.1864e-01,  1.0409e+00,  9.9340e-01, -1.5268e-02,  3.0728e-01,\n",
      "          9.4767e-01,  9.1794e-01, -1.4524e-02,  3.2051e-01,  3.0443e-01,\n",
      "          3.6486e-01,  3.5036e-01, -5.6763e-02, -8.4824e-03, -3.3437e-04]],\n",
      "       device='cuda:0')), ('out.bias', tensor([ 2.5915,  1.6362, -4.2277], device='cuda:0'))])\n",
      "time is 0:01:28.178978 s\n"
     ]
    }
   ],
   "source": [
    "# 4、 完成训练和迭代并保存模型\n",
    "from datetime import  datetime\n",
    "start_time = datetime.now()\n",
    "losses = []\n",
    "for i in range(EPOCHES):\n",
    "    for step,(batch_x,batch_y) in enumerate(loader):\n",
    "        x_b = batch_x\n",
    "        y_b = batch_y\n",
    "        if USE_CUDA:\n",
    "            x_b = x_b.cuda()\n",
    "            y_b = y_b.cuda()\n",
    "        out = model(x_b)  \n",
    "        loss = loss_func(out, y_b) \n",
    "        losses.append(loss.cpu().detach().numpy())   # 新版本需求\n",
    "        optimizer.zero_grad()  \n",
    "        loss.backward()  \n",
    "        optimizer.step() \n",
    "    scheduler.step()  # 更新学习率\n",
    "    if i%8==0 and i!=0:     #每隔一段时间保存一个模型\n",
    "        #torch.save(model.state_dict(),f\"./weights/model_params_{i}.pth\")\n",
    "        torch.save({'epoch': i,\n",
    "                'optimizer_dict': optimizer.state_dict(),\n",
    "                'model_dict': model.state_dict(),\n",
    "                'scheduler_dict': scheduler.state_dict()},\n",
    "                 \n",
    "                f\"./weights/model_params_{i}.dict\")\n",
    "        \n",
    "        print(model.state_dict())\n",
    "#     print(scheduler.get_lr())\n",
    "\n",
    "end_time = datetime.now()       \n",
    "msecs = (end_time - start_time) \n",
    "print(f\"time is {msecs} s\" )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "30179c71-6067-4a2f-903d-c93042009d9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_16452\\3947584025.py:46: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正确率:0.9997666666666667\n"
     ]
    }
   ],
   "source": [
    "#5、其它--打印损失\n",
    "x1 = range(0,len(losses))\n",
    "plt.plot(x1,losses,\".-\")\n",
    "plt.xlabel(\"epoches\")\n",
    "plt.ylabel(\"test loss\")\n",
    "plt.show()\n",
    "\n",
    "#5、其它--结果打印 及正确率\n",
    "train_result = model(x)  \n",
    "# print(train_result.shape)  \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() \n",
    "\n",
    "acc = accuracy_score(train_predict.cpu().numpy(),y.cpu().numpy())\n",
    "print(f\"正确率:{acc}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "261986d5-01be-44c8-aebd-3f1e43d3f00c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "model: OrderedDict([('n_hidden.weight', tensor([[ 5.0039e-01,  4.9402e-01],\n",
      "        [-4.5996e-01, -4.3579e-01],\n",
      "        [ 1.6974e-01,  1.6428e-01],\n",
      "        [-4.5829e-01, -4.3257e-01],\n",
      "        [-6.7299e-01, -6.3901e-01],\n",
      "        [-6.3004e-01, -6.0827e-01],\n",
      "        [ 1.7448e-01,  1.8185e-01],\n",
      "        [ 1.5393e-01,  1.6387e-01],\n",
      "        [-1.0220e-01, -9.9170e-02],\n",
      "        [ 8.1804e-02,  8.1216e-02],\n",
      "        [ 1.5588e-01,  1.5518e-01],\n",
      "        [ 1.5507e-01,  1.6926e-01],\n",
      "        [-1.1185e-01, -1.0719e-01],\n",
      "        [ 4.0377e-01,  4.2862e-01],\n",
      "        [ 4.4926e-01,  4.4359e-01],\n",
      "        [ 5.1875e-01,  5.1133e-01],\n",
      "        [ 4.8048e-01,  4.8111e-01],\n",
      "        [-4.1151e-01, -3.8553e-01],\n",
      "        [-6.8879e-02, -6.3684e-02],\n",
      "        [-1.7755e-04,  8.3515e-05]], device='cuda:0')), ('n_hidden.bias', tensor([-1.6082e-01,  5.2033e-01, -1.3869e+00,  5.2244e-01,  7.7350e-01,\n",
      "         7.1887e-01, -1.3723e+00, -1.2350e+00,  1.1706e-01, -4.1280e-01,\n",
      "        -1.2485e+00, -1.2473e+00,  1.2809e-01, -2.4233e-01, -1.0251e-01,\n",
      "        -7.2077e-02, -1.7118e-01,  4.6741e-01,  7.7708e-02, -2.5173e-04],\n",
      "       device='cuda:0')), ('out.weight', tensor([[ 3.4583e-01, -5.4434e-01, -8.6707e-01, -5.4293e-01, -7.8011e-01,\n",
      "         -7.3425e-01, -8.6012e-01, -6.6276e-01, -1.2325e-01, -2.8473e-01,\n",
      "         -7.8033e-01, -8.1922e-01, -1.3561e-01,  2.6559e-01,  2.9496e-01,\n",
      "          3.3323e-01,  3.0883e-01, -4.8774e-01, -8.0326e-02, -6.7583e-04],\n",
      "        [-6.7527e-01,  6.0949e-01, -1.8205e-01,  6.0882e-01,  9.1233e-01,\n",
      "          8.5436e-01, -1.8166e-01, -3.3030e-01,  1.3619e-01, -2.1428e-02,\n",
      "         -1.6598e-01, -1.0291e-01,  1.4761e-01, -5.8701e-01, -6.0197e-01,\n",
      "         -6.9829e-01, -6.5671e-01,  5.4322e-01,  9.1148e-02, -6.2487e-04],\n",
      "        [ 3.2932e-01, -6.4173e-02,  1.0467e+00, -6.5916e-02, -1.3398e-01,\n",
      "         -1.1864e-01,  1.0409e+00,  9.9340e-01, -1.5268e-02,  3.0728e-01,\n",
      "          9.4767e-01,  9.1794e-01, -1.4524e-02,  3.2051e-01,  3.0443e-01,\n",
      "          3.6486e-01,  3.5036e-01, -5.6763e-02, -8.4824e-03, -3.3437e-04]],\n",
      "       device='cuda:0')), ('out.bias', tensor([ 2.5915,  1.6362, -4.2277], device='cuda:0'))]) \n",
      " epoch: 8 \n",
      " optimizer: {'state': {0: {'momentum_buffer': None}, 1: {'momentum_buffer': None}, 2: {'momentum_buffer': None}, 3: {'momentum_buffer': None}}, 'param_groups': [{'lr': 0.05, 'momentum': 0, 'dampening': 0, 'weight_decay': 0, 'nesterov': False, 'maximize': False, 'foreach': None, 'initial_lr': 0.1, 'params': [0, 1, 2, 3]}]} \n",
      " scheduler: {'step_size': 5, 'gamma': 0.5, 'base_lrs': [0.1], 'last_epoch': 9, '_step_count': 10, 'verbose': False, '_get_lr_called_within_step': False, '_last_lr': [0.05]}\n"
     ]
    }
   ],
   "source": [
    "#6加载模型预测\n",
    "# 将之前的数据全部加载过来，继续训练\n",
    "checkpoint = torch.load(\"./weights/model_params_8.dict\")\n",
    "epoch = checkpoint['epoch']\n",
    "model.load_state_dict(checkpoint['model_dict'])\n",
    "optimizer.load_state_dict(checkpoint['optimizer_dict'])\n",
    "scheduler.load_state_dict(checkpoint['scheduler_dict'])\n",
    "print(\"model:\",model.state_dict(), \"\\n epoch:\",epoch, \"\\n optimizer:\",optimizer.state_dict(), \"\\n scheduler:\",scheduler.state_dict())\n",
    "# model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "076b25bc-12d4-4b1b-99db-cf0e625b513e",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_16452\\3947584025.py:46: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time is 0:00:17.932938 s\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正确率:0.9998\n"
     ]
    }
   ],
   "source": [
    "# 7 继续训练\n",
    "from datetime import  datetime\n",
    "start_time = datetime.now()\n",
    "EPOCHES = 10 - epoch\n",
    "losses = []\n",
    "for i in range(EPOCHES):\n",
    "    for step,(batch_x,batch_y) in enumerate(loader):\n",
    "        x_b = batch_x\n",
    "        y_b = batch_y\n",
    "        if USE_CUDA:\n",
    "            x_b = x_b.cuda()\n",
    "            y_b = y_b.cuda()\n",
    "        out = model(x_b)  \n",
    "        loss = loss_func(out, y_b) \n",
    "       # losses.append(loss)\n",
    "        losses.append(loss.cpu().detach().numpy())   # 新版本需求\n",
    "        optimizer.zero_grad()  \n",
    "        loss.backward()  \n",
    "        optimizer.step() \n",
    "end_time = datetime.now()       \n",
    "msecs = (end_time - start_time) \n",
    "print(f\"time is {msecs} s\" )\n",
    "\n",
    "#7.4测试验证\n",
    "train_result = model(x)  \n",
    "# print(train_result.shape)  \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() \n",
    "\n",
    "acc = accuracy_score(train_predict.cpu().numpy(),y.cpu().numpy())\n",
    "print(f\"正确率:{acc}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86422584-e2ce-4621-8384-1802089875e4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8fa23ec8-1a28-44e0-8273-465d9311beae",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
